using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Text;
using ECommerce.DAL;


namespace Entity
{
    /// <summary>
    /// This object represents the Private Fields of TblExportImportProduct.
    /// </summary>

    [System.ComponentModel.DataObject]
    public class TblExportImportProduct : DatabaseUtility
    {
        #region TblExportImportProduct Private Fields


        Int32 _importDataId;
        String _name = String.Empty;
        String _category = String.Empty;
        String _subCategory1 = String.Empty;
        String _subCategory2 = String.Empty;
        String _subCategory3 = String.Empty;
        String _subCategory4 = String.Empty;
        String _subCategory5 = String.Empty;
        String _manufacturer = String.Empty;
        String _description = String.Empty;
        Int32 _displayOrder;
        Decimal _price;
        String _itemNumber = String.Empty;
        Decimal _currentCost;
        Decimal _standardCost;
        String _imageName = String.Empty;
        Decimal _weight;
        Int32 _stockAmount;
        Int32 _packageQuanity;
        String _sizeName = String.Empty;
        Int32 _length1;
        Int32 _length2;
        Int32 _length3;
        Int32 _length4;
        Int32 _width1;
        Int32 _width2;
        Int32 _width3;
        Int32 _width4;
        Int32 _diameter1;
        Int32 _diameter2;
        Int32 _diameter3;
        Int32 _diameter4;
        Int32 _threadCount1;
        Int32 _threadCount2;
        Int32 _threadCount3;
        Int32 _threadCount4;
        Boolean _featured;
        Boolean _active;
        Boolean _useDecimalForSize;
        Boolean _isInserted;
        Boolean _special;

        #endregion
        #region TblExportImportProduct Constractor
        /// <summary>
        /// Creates an empty object of TblExportImportProduct. 
        /// This is mainly used to create a new instance of TblExportImportProduct to add a new TblExportImportProduct.
        /// </summary>
        public TblExportImportProduct() { }


        /// <summary>
        /// Used to retrieve employee information from database, 
        /// which is also used by Update method to save information of an existing TblExportImportProduct.
        /// </summary>
        public TblExportImportProduct
        (
            Int32 importDataId,
            String name,
            String category,
            String subCategory1,
            String subCategory2,
            String subCategory3,
            String subCategory4,
            String subCategory5,
            String manufacturer,
            String description,
            Int32 displayOrder,
            Decimal price,
            String itemNumber,
            Decimal currentCost,
            Decimal standardCost,
            String imageName,
            Decimal weight,
            Int32 stockAmount,
            Int32 packageQuanity,
            String sizeName,
            Int32 length1,
            Int32 length2,
            Int32 length3,
            Int32 length4,
            Int32 width1,
            Int32 width2,
            Int32 width3,
            Int32 width4,
            Int32 diameter1,
            Int32 diameter2,
            Int32 diameter3,
            Int32 diameter4,
            Int32 threadCount1,
            Int32 threadCount2,
            Int32 threadCount3,
            Int32 threadCount4,
            Boolean featured,
            Boolean active,
            Boolean useDecimalForSize,
            Boolean isInserted,
            Boolean special
        )
        {
            _importDataId = importDataId;
            _name = name;
            _category = category;
            _subCategory1 = subCategory1;
            _subCategory2 = subCategory2;
            _subCategory3 = subCategory3;
            _subCategory4 = subCategory4;
            _subCategory5 = subCategory5;
            _manufacturer = manufacturer;
            _description = description;
            _displayOrder = displayOrder;
            _price = price;
            _itemNumber = itemNumber;
            _currentCost = currentCost;
            _standardCost = standardCost;
            _imageName = imageName;
            _weight = weight;
            _stockAmount = stockAmount;
            _packageQuanity = packageQuanity;
            _sizeName = sizeName;
            _length1 = length1;
            _length2 = length2;
            _length3 = length3;
            _length4 = length4;
            _width1 = width1;
            _width2 = width2;
            _width3 = width3;
            _width4 = width4;
            _diameter1 = diameter1;
            _diameter2 = diameter2;
            _diameter3 = diameter3;
            _diameter4 = diameter4;
            _threadCount1 = threadCount1;
            _threadCount2 = threadCount2;
            _threadCount3 = threadCount3;
            _threadCount4 = threadCount4;
            _featured = featured;
            _active = active;
            _useDecimalForSize = useDecimalForSize;
            _isInserted = isInserted;
            _special = special;
        }

        #endregion
        #region TblExportImportProduct Properties

        /***********************************************************************************************
                                    -- PROPERTIES --        
         Contains all the properties representing the data fields of the current entity.
         ***********************************************************************************************/

        /// <summary>
        /// This is the Primary key value of the ImportDataId, which can't be assigned from the application,
        /// to ensure the data consistancy, by not letting the user to change the PK_TblExportImportProduct to update the data of an another TblExportImportProduct instance.
        /// For view or updation purpose, every TblExportImportProduct will be retrieved thru the proper 'Get' method.
        /// </summary>

        public Int32 ImportDataId
        {
            get { return _importDataId; }
        }


        public String Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public String Category
        {
            get { return _category; }
            set { _category = value; }
        }

        public String SubCategory1
        {
            get { return _subCategory1; }
            set { _subCategory1 = value; }
        }

        public String SubCategory2
        {
            get { return _subCategory2; }
            set { _subCategory2 = value; }
        }

        public String SubCategory3
        {
            get { return _subCategory3; }
            set { _subCategory3 = value; }
        }

        public String SubCategory4
        {
            get { return _subCategory4; }
            set { _subCategory4 = value; }
        }

        public String SubCategory5
        {
            get { return _subCategory5; }
            set { _subCategory5 = value; }
        }

        public String Manufacturer
        {
            get { return _manufacturer; }
            set { _manufacturer = value; }
        }

        public String Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public Int32 DisplayOrder
        {
            get { return _displayOrder; }
            set { _displayOrder = value; }
        }

        public Decimal Price
        {
            get { return _price; }
            set { _price = value; }
        }

        public String ItemNumber
        {
            get { return _itemNumber; }
            set { _itemNumber = value; }
        }

        public Decimal CurrentCost
        {
            get { return _currentCost; }
            set { _currentCost = value; }
        }

        public Decimal StandardCost
        {
            get { return _standardCost; }
            set { _standardCost = value; }
        }

        public String ImageName
        {
            get { return _imageName; }
            set { _imageName = value; }
        }

        public Decimal Weight
        {
            get { return _weight; }
            set { _weight = value; }
        }

        public Int32 StockAmount
        {
            get { return _stockAmount; }
            set { _stockAmount = value; }
        }

        public Int32 PackageQuanity
        {
            get { return _packageQuanity; }
            set { _packageQuanity = value; }
        }

        public String SizeName
        {
            get { return _sizeName; }
            set { _sizeName = value; }
        }

        public Int32 Length1
        {
            get { return _length1; }
            set { _length1 = value; }
        }

        public Int32 Length2
        {
            get { return _length2; }
            set { _length2 = value; }
        }

        public Int32 Length3
        {
            get { return _length3; }
            set { _length3 = value; }
        }

        public Int32 Length4
        {
            get { return _length4; }
            set { _length4 = value; }
        }

        public Int32 Width1
        {
            get { return _width1; }
            set { _width1 = value; }
        }

        public Int32 Width2
        {
            get { return _width2; }
            set { _width2 = value; }
        }

        public Int32 Width3
        {
            get { return _width3; }
            set { _width3 = value; }
        }

        public Int32 Width4
        {
            get { return _width4; }
            set { _width4 = value; }
        }

        public Int32 Diameter1
        {
            get { return _diameter1; }
            set { _diameter1 = value; }
        }

        public Int32 Diameter2
        {
            get { return _diameter2; }
            set { _diameter2 = value; }
        }

        public Int32 Diameter3
        {
            get { return _diameter3; }
            set { _diameter3 = value; }
        }

        public Int32 Diameter4
        {
            get { return _diameter4; }
            set { _diameter4 = value; }
        }

        public Int32 ThreadCount1
        {
            get { return _threadCount1; }
            set { _threadCount1 = value; }
        }

        public Int32 ThreadCount2
        {
            get { return _threadCount2; }
            set { _threadCount2 = value; }
        }

        public Int32 ThreadCount3
        {
            get { return _threadCount3; }
            set { _threadCount3 = value; }
        }

        public Int32 ThreadCount4
        {
            get { return _threadCount4; }
            set { _threadCount4 = value; }
        }

        public Boolean Featured
        {
            get { return _featured; }
            set { _featured = value; }
        }

        public Boolean Active
        {
            get { return _active; }
            set { _active = value; }
        }

        public Boolean UseDecimalForSize
        {
            get { return _useDecimalForSize; }
            set { _useDecimalForSize = value; }
        }

        public Boolean IsInserted
        {
            get { return _isInserted; }
            set { _isInserted = value; }
        }

        public Boolean Special
        {
            get { return _special; }
            set { _special = value; }
        }

        #endregion
        #region TblExportImportProduct Static Methods
        /************************************************************************************
                                    -- CREATE METHOD (STATIC) --
        *************************************************************************************/
        /************************* Architecure note:**********************************
        Note 1:
        This method is specially useful for the case, where we need to use Object Data Source controls.
        For ObjectDataSource/SqlDataSource controls, the insert/update metnod requires paramters methods, rather property based methods.
        However, there is still a way to pass property based objects as method parameter for data source controls, 
        but in that case we could not use Sql type, as view controls or asp parameter control can only contain few of primitive type.
        The main reason to remain the Sql Type in our object architecture is it is faster and contains better way for null value support.
        
        Note 2: 
        Non-primary key: it should be primitive type, as the asp paramter control (included in data source control) supports only primitive types.
        /*****************************************************************************/
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
        public static Int32 CreateNewTblExportImportProduct
        (
            String name,
            String category,
            String subCategory1,
            String subCategory2,
            String subCategory3,
            String subCategory4,
            String subCategory5,
            String manufacturer,
            String description,
            Int32 displayOrder,
            Decimal price,
            String itemNumber,
            Decimal currentCost,
            Decimal standardCost,
            String imageName,
            Decimal weight,
            Int32 stockAmount,
            Int32 packageQuanity,
            String sizeName,
            Int32 length1,
            Int32 length2,
            Int32 length3,
            Int32 length4,
            Int32 width1,
            Int32 width2,
            Int32 width3,
            Int32 width4,
            Int32 diameter1,
            Int32 diameter2,
            Int32 diameter3,
            Int32 diameter4,
            Int32 threadCount1,
            Int32 threadCount2,
            Int32 threadCount3,
            Int32 threadCount4,
            Boolean featured,
            Boolean active,
            Boolean useDecimalForSize,
            Boolean isInserted,
            Boolean special
        )
        {
            //creating an empty TblExportImportProduct object
            TblExportImportProduct tblExportImportProduct = new TblExportImportProduct();
            tblExportImportProduct.Name = name;
            tblExportImportProduct.Category = category;
            tblExportImportProduct.SubCategory1 = subCategory1;
            tblExportImportProduct.SubCategory2 = subCategory2;
            tblExportImportProduct.SubCategory3 = subCategory3;
            tblExportImportProduct.SubCategory4 = subCategory4;
            tblExportImportProduct.SubCategory5 = subCategory5;
            tblExportImportProduct.Manufacturer = manufacturer;
            tblExportImportProduct.Description = description;
            tblExportImportProduct.DisplayOrder = displayOrder;
            tblExportImportProduct.Price = price;
            tblExportImportProduct.ItemNumber = itemNumber;
            tblExportImportProduct.CurrentCost = currentCost;
            tblExportImportProduct.StandardCost = standardCost;
            tblExportImportProduct.ImageName = imageName;
            tblExportImportProduct.Weight = weight;
            tblExportImportProduct.StockAmount = stockAmount;
            tblExportImportProduct.PackageQuanity = packageQuanity;
            tblExportImportProduct.SizeName = sizeName;
            tblExportImportProduct.Length1 = length1;
            tblExportImportProduct.Length2 = length2;
            tblExportImportProduct.Length3 = length3;
            tblExportImportProduct.Length4 = length4;
            tblExportImportProduct.Width1 = width1;
            tblExportImportProduct.Width2 = width2;
            tblExportImportProduct.Width3 = width3;
            tblExportImportProduct.Width4 = width4;
            tblExportImportProduct.Diameter1 = diameter1;
            tblExportImportProduct.Diameter2 = diameter2;
            tblExportImportProduct.Diameter3 = diameter3;
            tblExportImportProduct.Diameter4 = diameter4;
            tblExportImportProduct.ThreadCount1 = threadCount1;
            tblExportImportProduct.ThreadCount2 = threadCount2;
            tblExportImportProduct.ThreadCount3 = threadCount3;
            tblExportImportProduct.ThreadCount4 = threadCount4;
            tblExportImportProduct.Featured = featured;
            tblExportImportProduct.Active = active;
            tblExportImportProduct.UseDecimalForSize = useDecimalForSize;
            tblExportImportProduct.IsInserted = isInserted;
            tblExportImportProduct.Special = special;

            return TblExportImportProduct.CreateNewTblExportImportProduct(tblExportImportProduct);
        }

        /************************************************************************************
                 -- UPDATE METHODS (STATIC) --
        *************************************************************************************/

        /************************* Architecure note:**********************************
        Note 1:
        This method is specially useful for the case, where we need to use Object Data Source controls.
        For ObjectDataSource/SqlDataSource controls, the insert/update metnod requires paramters methods, rather property based methods.
        However, there is still a way to pass property based objects as method parameter for data source controls, 
        but in that case we could not use Sql type, as view controls or asp parameter control can only contain few of primitive type.
        The main reason to remain the Sql Type in our object architecture is it is faster and contains better way for null value support.
        
        Note 2: 
        There the two types of paramaters will be passed here.
         * a. Primary key paramater: it should be Sql type, as we will bind the primary key property for the view controls (form view, details view etc) as datakey.
         * b. Non-primary key: it should be primitive type, as the asp paramter control (included in data source control) supports only primitive types.
        /*****************************************************************************/

        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
        public static bool UpdateTblExportImportProduct
        (
            Int32 importDataId,
            String name,
            String category,
            String subCategory1,
            String subCategory2,
            String subCategory3,
            String subCategory4,
            String subCategory5,
            String manufacturer,
            String description,
            Int32 displayOrder,
            Decimal price,
            String itemNumber,
            Decimal currentCost,
            Decimal standardCost,
            String imageName,
            Decimal weight,
            Int32 stockAmount,
            Int32 packageQuanity,
            String sizeName,
            Int32 length1,
            Int32 length2,
            Int32 length3,
            Int32 length4,
            Int32 width1,
            Int32 width2,
            Int32 width3,
            Int32 width4,
            Int32 diameter1,
            Int32 diameter2,
            Int32 diameter3,
            Int32 diameter4,
            Int32 threadCount1,
            Int32 threadCount2,
            Int32 threadCount3,
            Int32 threadCount4,
            Boolean featured,
            Boolean active,
            Boolean useDecimalForSize,
            Boolean isInserted,
            Boolean special
        )
        {
            TblExportImportProduct tblExportImportProduct = TblExportImportProduct.GetTblExportImportProductByImportDataId(importDataId);

            tblExportImportProduct.Name = name;
            tblExportImportProduct.Category = category;
            tblExportImportProduct.SubCategory1 = subCategory1;
            tblExportImportProduct.SubCategory2 = subCategory2;
            tblExportImportProduct.SubCategory3 = subCategory3;
            tblExportImportProduct.SubCategory4 = subCategory4;
            tblExportImportProduct.SubCategory5 = subCategory5;
            tblExportImportProduct.Manufacturer = manufacturer;
            tblExportImportProduct.Description = description;
            tblExportImportProduct.DisplayOrder = displayOrder;
            tblExportImportProduct.Price = price;
            tblExportImportProduct.ItemNumber = itemNumber;
            tblExportImportProduct.CurrentCost = currentCost;
            tblExportImportProduct.StandardCost = standardCost;
            tblExportImportProduct.ImageName = imageName;
            tblExportImportProduct.Weight = weight;
            tblExportImportProduct.StockAmount = stockAmount;
            tblExportImportProduct.PackageQuanity = packageQuanity;
            tblExportImportProduct.SizeName = sizeName;
            tblExportImportProduct.Length1 = length1;
            tblExportImportProduct.Length2 = length2;
            tblExportImportProduct.Length3 = length3;
            tblExportImportProduct.Length4 = length4;
            tblExportImportProduct.Width1 = width1;
            tblExportImportProduct.Width2 = width2;
            tblExportImportProduct.Width3 = width3;
            tblExportImportProduct.Width4 = width4;
            tblExportImportProduct.Diameter1 = diameter1;
            tblExportImportProduct.Diameter2 = diameter2;
            tblExportImportProduct.Diameter3 = diameter3;
            tblExportImportProduct.Diameter4 = diameter4;
            tblExportImportProduct.ThreadCount1 = threadCount1;
            tblExportImportProduct.ThreadCount2 = threadCount2;
            tblExportImportProduct.ThreadCount3 = threadCount3;
            tblExportImportProduct.ThreadCount4 = threadCount4;
            tblExportImportProduct.Featured = featured;
            tblExportImportProduct.Active = active;
            tblExportImportProduct.UseDecimalForSize = useDecimalForSize;
            tblExportImportProduct.IsInserted = isInserted;
            tblExportImportProduct.Special = special;

            return TblExportImportProduct.UpdateTblExportImportProduct(tblExportImportProduct);
        }

        /************************************************************************************
                         -- DELETE METHODS --
        *************************************************************************************/
        /************************* Architecure note:**********************************
        We have used the employeeId parameter as SqlInt32, to bind the delete method with object data source and view control directly.
        ****************************************************************************/
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
        public static bool DeleteTblExportImportProduct
        (
            Int32 importDataId
        )
        {
            //Validate Input
            if (importDataId <= GetImportDataIdMinValue)
                throw (new ArgumentOutOfRangeException("importDataId"));

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            AddParameterToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null);
            AddParameterToSqlCmd(sqlCmd, "@ImportDataId", SqlDbType.Int, 0, ParameterDirection.Input, importDataId);
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_DELETETBLEXPORTIMPORTPRODUCT);
            ExecuteScalarCmd(sqlCmd);
            int returnValue = (int)sqlCmd.Parameters["@ReturnValue"].Value;
            return (returnValue == 0 ? false : true);

        }

        /// <summary>
        /// Deletes a set of employees from the database.
        /// </summary>
        public static bool DeleteTblExportImportProductList(System.Collections.Generic.List<Int32> importDataIdListToDelete)
        {
            //Validate Input
            foreach (Int32 importDataId in importDataIdListToDelete)
                if (importDataId <= GetImportDataIdMinValue)
                    throw (new ArgumentOutOfRangeException("importDataId"));

            //performing deletion operation //

            string xmlString = FormatXMLForIdArray(importDataIdListToDelete);

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            AddParameterToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null);
            AddParameterToSqlCmd(sqlCmd, "@ImportDataIdList", SqlDbType.Xml, xmlString.ToString().Length, ParameterDirection.Input, xmlString.ToString());
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_DELETETBLEXPORTIMPORTPRODUCTLIST);
            ExecuteScalarCmd(sqlCmd);
            int returnValue = (int)sqlCmd.Parameters["@ReturnValue"].Value;
            return (returnValue == importDataIdListToDelete.Count ? true : false);
        }

        /************************************************************************************
                                 -- GET BY PRIMARY METHODS --
        *************************************************************************************/
        /************************* Architecure note:**********************************
        Retrives an Employee from database, based on it's primary key.
        To view or update an employee, everytime we must have to use this type of 'get' method, 
        since we don't have direct access to the Primary key value for assigning value.
        We have used the employeeId parameter as SqlInt32, to bind the delete method with object data source and view control directly.
        /*****************************************************************************/
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
        public static TblExportImportProduct GetTblExportImportProductByImportDataId(Int32 importDataId)
        {
            if (importDataId <= GetImportDataIdMinValue)
                throw (new ArgumentOutOfRangeException("importDataId"));

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            AddParameterToSqlCmd(sqlCmd, "@ImportDataId", SqlDbType.Int, 0, ParameterDirection.Input, importDataId);
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_GETTBLEXPORTIMPORTPRODUCTBYIMPORTDATAID);
            GenerateCollectionFromReader test = new GenerateCollectionFromReader(GenerateTblExportImportProductCollectionFromReader);
            CustomCollection<TblExportImportProduct> objCollection = ((CustomCollection<TblExportImportProduct>)ExecuteReaderCmd(sqlCmd, test));

            if (objCollection.Count > 0)
                return objCollection[0];
            else
                return null;
        }

        /************************************************************************************
                         -- GET BY FOREIGN KEY METHODS --
        *************************************************************************************/

        /************************************************************************************
                 -- GET ALL METHODS --
        *************************************************************************************/
        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
        public static CustomCollection<TblExportImportProduct> GetAllTblExportImportProduct()
        {

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCT);
            GenerateCollectionFromReader test = new GenerateCollectionFromReader(GenerateTblExportImportProductCollectionFromReader);
            CustomCollection<TblExportImportProduct> objCollection = ((CustomCollection<TblExportImportProduct>)ExecuteReaderCmd(sqlCmd, test));

            return objCollection;
        }

        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
        public static CustomCollection<TblExportImportProduct> GetAllTblExportImportProductPaged(String orderBy, Int32 startRowIndex, Int32 maximumRows)
        {
            //Validate Input
            if (orderBy == "")
                orderBy = "ImportDataId";

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            AddParameterToSqlCmd(sqlCmd, "@orderby", SqlDbType.VarChar, 50, ParameterDirection.Input, orderBy);
            AddParameterToSqlCmd(sqlCmd, "@startrow", SqlDbType.Int, 0, ParameterDirection.Input, startRowIndex);
            AddParameterToSqlCmd(sqlCmd, "@pagesize", SqlDbType.Int, 0, ParameterDirection.Input, maximumRows);

            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCTPAGED);

            GenerateCollectionFromReader test = new GenerateCollectionFromReader(GenerateTblExportImportProductCollectionFromReader);
            CustomCollection<TblExportImportProduct> objCollection = ((CustomCollection<TblExportImportProduct>)ExecuteReaderCmd(sqlCmd, test));
            return objCollection;
        }

        [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
        public static int GetAllTblExportImportProductPagedCount(String orderBy, Int32 startRowIndex, Int32 maximumRows)
        {
            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();

            AddParameterToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null);
            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCTPAGEDCOUNT);
            ExecuteScalarCmd(sqlCmd);

            int returnValue = (int)sqlCmd.Parameters["@ReturnValue"].Value;
            return returnValue;
        }

        #endregion
        #region Employee Instance Methods
        /************************************************************************************
                                    -- SAVE (INSERT/UPDATE) METHODS (INSTANCE) --
        *************************************************************************************/
        /// <summary>
        /// Saves (inserts and updates) an Employee into database.
        /// The insertion occur if the EmployeeId conatins default value.
        /// Otherwises it updates the Employee into the database, based on the primary key value stored in EmployeeId.
        /// This technique ensures an Employee will not be updated without having a valid EmployeeId.
        /// </summary>
        public bool Save()
        {
            if (ImportDataId <= GetImportDataIdMinValue)
            {
                Int32 TempId = CreateNewTblExportImportProduct(this);
                if (TempId > 0)
                {
                    _importDataId = TempId;
                    return true;
                }
                else
                {
                    // error occurs
                    return false;
                }
            }
            else
            {	//This is a update Command
                return (UpdateTblExportImportProduct(this));
            }

        }

        public static Int32 CreateNewTblExportImportProduct(TblExportImportProduct newTblExportImportProduct)
        {
            // validate Parameters
            if (newTblExportImportProduct == null)
                throw (new ArgumentNullException("newTblExportImportProduct"));

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            int length = 0;
            AddParameterToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null);

            AddParameterToSqlCmd(sqlCmd, "@Name", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Name);
            AddParameterToSqlCmd(sqlCmd, "@Category", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Category);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory1", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory1);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory2", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory2);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory3", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory3);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory4", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory4);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory5", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory5);
            AddParameterToSqlCmd(sqlCmd, "@Manufacturer", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Manufacturer);
            AddParameterToSqlCmd(sqlCmd, "@Description", SqlDbType.NVarChar, -1, ParameterDirection.Input, newTblExportImportProduct.Description);
            AddParameterToSqlCmd(sqlCmd, "@DisplayOrder", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.DisplayOrder);
            AddParameterToSqlCmd(sqlCmd, "@Price", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.Price);
            AddParameterToSqlCmd(sqlCmd, "@ItemNumber", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.ItemNumber);
            AddParameterToSqlCmd(sqlCmd, "@CurrentCost", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.CurrentCost);
            AddParameterToSqlCmd(sqlCmd, "@StandardCost", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.StandardCost);
            AddParameterToSqlCmd(sqlCmd, "@ImageName", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.ImageName);
            AddParameterToSqlCmd(sqlCmd, "@Weight", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.Weight);
            AddParameterToSqlCmd(sqlCmd, "@StockAmount", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.StockAmount);
            AddParameterToSqlCmd(sqlCmd, "@PackageQuanity", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.PackageQuanity);
            AddParameterToSqlCmd(sqlCmd, "@SizeName", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SizeName);
            AddParameterToSqlCmd(sqlCmd, "@Length1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length1);
            AddParameterToSqlCmd(sqlCmd, "@Length2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length2);
            AddParameterToSqlCmd(sqlCmd, "@Length3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length3);
            AddParameterToSqlCmd(sqlCmd, "@Length4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length4);
            AddParameterToSqlCmd(sqlCmd, "@Width1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width1);
            AddParameterToSqlCmd(sqlCmd, "@Width2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width2);
            AddParameterToSqlCmd(sqlCmd, "@Width3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width3);
            AddParameterToSqlCmd(sqlCmd, "@Width4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width4);
            AddParameterToSqlCmd(sqlCmd, "@Diameter1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter1);
            AddParameterToSqlCmd(sqlCmd, "@Diameter2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter2);
            AddParameterToSqlCmd(sqlCmd, "@Diameter3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter3);
            AddParameterToSqlCmd(sqlCmd, "@Diameter4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter4);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount1);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount2);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount3);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount4);
            AddParameterToSqlCmd(sqlCmd, "@Featured", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Featured);
            AddParameterToSqlCmd(sqlCmd, "@Active", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Active);
            AddParameterToSqlCmd(sqlCmd, "@UseDecimalForSize", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.UseDecimalForSize);
            AddParameterToSqlCmd(sqlCmd, "@IsInserted", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.IsInserted);
            AddParameterToSqlCmd(sqlCmd, "@Special", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Special);

            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_CREATENEWTBLEXPORTIMPORTPRODUCT);
            ExecuteScalarCmd(sqlCmd);
            return (Int32.Parse(sqlCmd.Parameters["@ReturnValue"].Value.ToString()));

        }
        /// <summary>
        /// Updates an TblExportImportProduct instance to the database.
        /// </summary>
        public static bool UpdateTblExportImportProduct(TblExportImportProduct newTblExportImportProduct)
        {
            // validate Parameters
            if (newTblExportImportProduct == null)
                throw (new ArgumentNullException("newTblExportImportProduct"));

            // Execute SQL Command
            SqlCommand sqlCmd = new SqlCommand();
            int length = 0;
            AddParameterToSqlCmd(sqlCmd, "@ReturnValue", SqlDbType.Int, 0, ParameterDirection.ReturnValue, null);

            AddParameterToSqlCmd(sqlCmd, "@ImportDataId", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ImportDataId);
            AddParameterToSqlCmd(sqlCmd, "@Name", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Name);
            AddParameterToSqlCmd(sqlCmd, "@Category", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Category);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory1", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory1);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory2", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory2);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory3", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory3);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory4", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory4);
            AddParameterToSqlCmd(sqlCmd, "@SubCategory5", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SubCategory5);
            AddParameterToSqlCmd(sqlCmd, "@Manufacturer", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.Manufacturer);
            AddParameterToSqlCmd(sqlCmd, "@Description", SqlDbType.NVarChar, -1, ParameterDirection.Input, newTblExportImportProduct.Description);
            AddParameterToSqlCmd(sqlCmd, "@DisplayOrder", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.DisplayOrder);
            AddParameterToSqlCmd(sqlCmd, "@Price", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.Price);
            AddParameterToSqlCmd(sqlCmd, "@ItemNumber", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.ItemNumber);
            AddParameterToSqlCmd(sqlCmd, "@CurrentCost", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.CurrentCost);
            AddParameterToSqlCmd(sqlCmd, "@StandardCost", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.StandardCost);
            AddParameterToSqlCmd(sqlCmd, "@ImageName", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.ImageName);
            AddParameterToSqlCmd(sqlCmd, "@Weight", SqlDbType.Decimal, 9, ParameterDirection.Input, newTblExportImportProduct.Weight);
            AddParameterToSqlCmd(sqlCmd, "@StockAmount", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.StockAmount);
            AddParameterToSqlCmd(sqlCmd, "@PackageQuanity", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.PackageQuanity);
            AddParameterToSqlCmd(sqlCmd, "@SizeName", SqlDbType.NVarChar, 500, ParameterDirection.Input, newTblExportImportProduct.SizeName);
            AddParameterToSqlCmd(sqlCmd, "@Length1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length1);
            AddParameterToSqlCmd(sqlCmd, "@Length2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length2);
            AddParameterToSqlCmd(sqlCmd, "@Length3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length3);
            AddParameterToSqlCmd(sqlCmd, "@Length4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Length4);
            AddParameterToSqlCmd(sqlCmd, "@Width1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width1);
            AddParameterToSqlCmd(sqlCmd, "@Width2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width2);
            AddParameterToSqlCmd(sqlCmd, "@Width3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width3);
            AddParameterToSqlCmd(sqlCmd, "@Width4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Width4);
            AddParameterToSqlCmd(sqlCmd, "@Diameter1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter1);
            AddParameterToSqlCmd(sqlCmd, "@Diameter2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter2);
            AddParameterToSqlCmd(sqlCmd, "@Diameter3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter3);
            AddParameterToSqlCmd(sqlCmd, "@Diameter4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.Diameter4);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount1", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount1);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount2", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount2);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount3", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount3);
            AddParameterToSqlCmd(sqlCmd, "@ThreadCount4", SqlDbType.Int, 0, ParameterDirection.Input, newTblExportImportProduct.ThreadCount4);
            AddParameterToSqlCmd(sqlCmd, "@Featured", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Featured);
            AddParameterToSqlCmd(sqlCmd, "@Active", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Active);
            AddParameterToSqlCmd(sqlCmd, "@UseDecimalForSize", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.UseDecimalForSize);
            AddParameterToSqlCmd(sqlCmd, "@IsInserted", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.IsInserted);
            AddParameterToSqlCmd(sqlCmd, "@Special", SqlDbType.Bit, 0, ParameterDirection.Input, newTblExportImportProduct.Special);

            SetCommandType(sqlCmd, CommandType.StoredProcedure, SPR_TBLEXPORTIMPORTPRODUCT_UPDATETBLEXPORTIMPORTPRODUCT);
            ExecuteScalarCmd(sqlCmd);
            int returnValue = (int)sqlCmd.Parameters["@ReturnValue"].Value;
            return (returnValue == 0 ? false : true);
        }
        #endregion

        #region TblExportImportProduct Related Collections
        /// <summary>
        /// Creates and returns a strongly typed collection of Employee custom entity. 
        /// The colelction is created through iterating on the IdataReader object which contains Employee information, as a set of records, similar to tabular format.
        /// </summary>
        public static CollectionBase GenerateTblExportImportProductCollectionFromReader(IDataReader returnData)
        {

            //creating the instance of Employee collection
            CustomCollection<TblExportImportProduct> colTblExportImportProduct = new CustomCollection<TblExportImportProduct>();

            /************************* Architecure note:**********************************
             * Below code includes the null value functionality to retieve the data which has nill value in database end.
             * Design consideration:
             * Besides general data fields, special care should be taken for primary keys, to assign '0'/defaultvalue, rather passing 'Null' value in constructor parameter.
             * Although we are considering sqldb tyoe data for the current data container, but while retireving data from database end, through datareader object, we need to cast data reader objects using .net primitive data type, 
             * rather using sqldb type to cast, since data reader objects don't support sql db type to be casted.
             *****************************************************************************/

            //Iterating thriugh the data reader, to generate Employee collection.

            //getting the Employee collection by iterating thru the data reader
            while (returnData.Read())
            {
                //passing the TblExportImportProduct constructor parameters from the current instance of data reader fields.
                TblExportImportProduct newTblExportImportProduct = new TblExportImportProduct
                (
                    returnData["ImportDataId"] == System.DBNull.Value ? GetImportDataIdMinValue : (Int32)returnData["ImportDataId"],
                    returnData["Name"] == System.DBNull.Value ? string.Empty : (String)returnData["Name"],
                    returnData["Category"] == System.DBNull.Value ? string.Empty : (String)returnData["Category"],
                    returnData["SubCategory1"] == System.DBNull.Value ? string.Empty : (String)returnData["SubCategory1"],
                    returnData["SubCategory2"] == System.DBNull.Value ? string.Empty : (String)returnData["SubCategory2"],
                    returnData["SubCategory3"] == System.DBNull.Value ? string.Empty : (String)returnData["SubCategory3"],
                    returnData["SubCategory4"] == System.DBNull.Value ? string.Empty : (String)returnData["SubCategory4"],
                    returnData["SubCategory5"] == System.DBNull.Value ? string.Empty : (String)returnData["SubCategory5"],
                    returnData["Manufacturer"] == System.DBNull.Value ? string.Empty : (String)returnData["Manufacturer"],
                    returnData["Description"] == System.DBNull.Value ? string.Empty : (String)returnData["Description"],
                    returnData["DisplayOrder"] == System.DBNull.Value ? 0 : (Int32)returnData["DisplayOrder"],
                    returnData["Price"] == System.DBNull.Value ? 0 : (Decimal)returnData["Price"],
                    returnData["ItemNumber"] == System.DBNull.Value ? string.Empty : (String)returnData["ItemNumber"],
                    returnData["CurrentCost"] == System.DBNull.Value ? 0 : (Decimal)returnData["CurrentCost"],
                    returnData["StandardCost"] == System.DBNull.Value ? 0 : (Decimal)returnData["StandardCost"],
                    returnData["ImageName"] == System.DBNull.Value ? string.Empty : (String)returnData["ImageName"],
                    returnData["Weight"] == System.DBNull.Value ? 0 : (Decimal)returnData["Weight"],
                    returnData["StockAmount"] == System.DBNull.Value ? 0 : (Int32)returnData["StockAmount"],
                    returnData["PackageQuanity"] == System.DBNull.Value ? 0 : (Int32)returnData["PackageQuanity"],
                    returnData["SizeName"] == System.DBNull.Value ? string.Empty : (String)returnData["SizeName"],
                    returnData["Length1"] == System.DBNull.Value ? 0 : (Int32)returnData["Length1"],
                    returnData["Length2"] == System.DBNull.Value ? 0 : (Int32)returnData["Length2"],
                    returnData["Length3"] == System.DBNull.Value ? 0 : (Int32)returnData["Length3"],
                    returnData["Length4"] == System.DBNull.Value ? 0 : (Int32)returnData["Length4"],
                    returnData["Width1"] == System.DBNull.Value ? 0 : (Int32)returnData["Width1"],
                    returnData["Width2"] == System.DBNull.Value ? 0 : (Int32)returnData["Width2"],
                    returnData["Width3"] == System.DBNull.Value ? 0 : (Int32)returnData["Width3"],
                    returnData["Width4"] == System.DBNull.Value ? 0 : (Int32)returnData["Width4"],
                    returnData["Diameter1"] == System.DBNull.Value ? 0 : (Int32)returnData["Diameter1"],
                    returnData["Diameter2"] == System.DBNull.Value ? 0 : (Int32)returnData["Diameter2"],
                    returnData["Diameter3"] == System.DBNull.Value ? 0 : (Int32)returnData["Diameter3"],
                    returnData["Diameter4"] == System.DBNull.Value ? 0 : (Int32)returnData["Diameter4"],
                    returnData["ThreadCount1"] == System.DBNull.Value ? 0 : (Int32)returnData["ThreadCount1"],
                    returnData["ThreadCount2"] == System.DBNull.Value ? 0 : (Int32)returnData["ThreadCount2"],
                    returnData["ThreadCount3"] == System.DBNull.Value ? 0 : (Int32)returnData["ThreadCount3"],
                    returnData["ThreadCount4"] == System.DBNull.Value ? 0 : (Int32)returnData["ThreadCount4"],
                    returnData["Featured"] == System.DBNull.Value ? false : (Boolean)returnData["Featured"],
                    returnData["Active"] == System.DBNull.Value ? false : (Boolean)returnData["Active"],
                    returnData["UseDecimalForSize"] == System.DBNull.Value ? false : (Boolean)returnData["UseDecimalForSize"],
                    returnData["IsInserted"] == System.DBNull.Value ? false : (Boolean)returnData["IsInserted"],
                    returnData["Special"] == System.DBNull.Value ? false : (Boolean)returnData["Special"]

                );
                //adding the Employee to the collection
                colTblExportImportProduct.Add(newTblExportImportProduct);
            }

            //returns the collection of Companys 
            return (colTblExportImportProduct);
        }

        #endregion
        #region Constants and Default Values

        public static Int32 GetImportDataIdMinValue
        {
            get
            {
                return 0;
            }
        }

        //create method related contants
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_CREATENEWTBLEXPORTIMPORTPRODUCT = "sp_TblExportImportProduct_CreateNewTblExportImportProduct";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_UPDATETBLEXPORTIMPORTPRODUCT = "sp_TblExportImportProduct_UpdateTblExportImportProduct";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_DELETETBLEXPORTIMPORTPRODUCT = "sp_TblExportImportProduct_DeleteTblExportImportProduct";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_DELETETBLEXPORTIMPORTPRODUCTLIST = "sp_TblExportImportProduct_DeleteTblExportImportProductList";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_GETTBLEXPORTIMPORTPRODUCTBYIMPORTDATAID = "sp_TblExportImportProduct_GetTblExportImportProductByImportDataId";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCT = "sp_TblExportImportProduct_GetAllTblExportImportProduct";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCTPAGED = "sp_TblExportImportProduct_GetAllTblExportImportProductPaged";
        internal const string SPR_TBLEXPORTIMPORTPRODUCT_GETALLTBLEXPORTIMPORTPRODUCTPAGEDCOUNT = "sp_TblExportImportProduct_GetAllTblExportImportProductPagedCount";

        #endregion
    }
}
